package com.vfa.fishing.object;

import org.anddev.andengine.entity.sprite.AnimatedSprite;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.opengl.texture.region.TextureRegion;
import org.anddev.andengine.opengl.texture.region.TiledTextureRegion;

import com.vfa.fishing.MainActivity;
import com.vfa.fishing.common.Constant;


public abstract class AbstractObject extends AnimatedSprite {
	public int kindOfObject;// doi tuong nay la gi??

     public AbstractObject(int x,int y,TiledTextureRegion pTextureRegion,int sideApp){
            super(x,y,pTextureRegion);
            kindOfObject = -1;// chua xac dinh la thu gi
     }
     /** Mỗi đối tượng thừa kế từ lớp này sẽ phải override lại,mỗi đội tượng đó sẽ có phương thức update*/
     public abstract void update();
     /**kiểm tra va chạm với 4 biên*/
     public  boolean checkCollision() {
         if(this.getX()+this.getWidth() >= MainActivity.CAMERA_WIDTH+70 ||  this.getX()<=-40) {// nếu nhở hơn biên trái 40 và lớn hơn biên phải 70 thì return true
             return true;
         }
         return false;
     } // kiem tra collision voi bien
     /**kiem tra va chạm của hai đối tượng thừa kế từ lớp này*/
     public  boolean checkCollision(AbstractObject obj){
         if(Constant.checkCollision((int)obj.getX(), (int)obj.getY(),(int)this.getX(), (int)this.getY(), (int)(this.getX()+this.getWidth()),(int)(this.getY()+this.getHeight()))){
             return true;
         }
         return false;
     } //kiem tra collision giua 2 object
     /** những đối tượng có thuộc tính là terrible,;là những đối tượng có thể tấn công người và ăn những đối tượng nhỏ khác*/
     public abstract void Eat();
	public abstract void resetDirection();  
}
